{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Exam 1</th>\n",
       "      <th>Exam 2</th>\n",
       "      <th>Admitted</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>34.623660</td>\n",
       "      <td>78.024693</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30.286711</td>\n",
       "      <td>43.894998</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>35.847409</td>\n",
       "      <td>72.902198</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60.182599</td>\n",
       "      <td>86.308552</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>79.032736</td>\n",
       "      <td>75.344376</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Exam 1     Exam 2  Admitted\n",
       "0  34.623660  78.024693         0\n",
       "1  30.286711  43.894998         0\n",
       "2  35.847409  72.902198         0\n",
       "3  60.182599  86.308552         1\n",
       "4  79.032736  75.344376         1"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "path = 'LogiReg_data.txt'\n",
    "pdData = pd.read_csv(path, header=None, names=['Exam 1', 'Exam 2', 'Admitted'])\n",
    "pdData.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 3)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pdData.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Exam 2 Score')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmcAAAFACAYAAAD589sCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3Xt8XXWZ7/HPUxoo2CIUgwdpSytT\nBYS2QGhBGQSKCCMIjjcQQ0HGRg/UUMUMExhQp+3R6mtiizNSxlo6tRakcjtnvGER6yAGUiy3FmTQ\nNqmtNJQWqNxa8pw/1lrZaUh2drIv67K/79drv1bWyt7Zv6x9e/bv8jzm7oiIiIhIMgyLuwEiIiIi\nkqPgTERERCRBFJyJiIiIJIiCMxEREZEEUXAmIiIikiAKzkREREQSRMGZiIiISIIoOBMRERFJEAVn\nIiIiIgkyPO4GFONtb3ubjx8/Pu5miIiIiAxozZo1z7l77UDXS3VwNn78eNra2uJuhoiIiMiAzGxj\nIdfTsKaIiIhIgig4ExEREUkQBWciIiIiCZLqOWciIiLVbteuXWzatIlXX3017qZIaMSIEYwZM4aa\nmpoh3V7BmYiISIpt2rSJUaNGMX78eMws7uZUPXdn27ZtbNq0iQkTJgzpb5RtWNPMvm9mW83s8R7H\nRpvZPWb2dLg9MDxuZrbQzP7HzB41s+PK1S4REZEsefXVVznooIMUmCWEmXHQQQcV1ZNZzjlnNwNn\n9Tp2NbDK3ScCq8J9gLOBieFlJvDdMrZLREQkUxSYJUuxj0fZgjN3Xw083+vwecDS8OelwPk9jv+n\nB34HHGBmh5SrbSIiIiJJVenVmm939y0A4fbg8PihQEeP620Kj72Jmc00szYza+vs7CxrY0VERKQw\nd9xxB2bGk08+2efvL7nkElauXFnw39u8eTMf+9jHAFi7di0/+clPun9333338dvf/nbQbRw/fjzP\nPffcoG9XaUlJpdFX/5/3dUV3v8nd69y9rrZ2wAoI6dPeDnPngof/vnuw394eb7tERCQTOjpg1iyY\nOjXYdnQMfJtCrFixgpNPPplbbrmlJH/vHe94R3cwV6rgLC0qHZw9Gw1Xhtut4fFNwNge1xsDbK5w\n25Jh2TK49lqYPTsIzGbPDvaXLYu7ZSIiknIdHTB5MixaBA89FGwnTy4+QNu5cyf3338/ixcv7g7O\n3J0rrriCo446ig996ENs3bq1+/rjx4+nubmZk046ibq6Oh5++GE++MEPcvjhh3PjjTcCsGHDBo4+\n+mhef/11rrvuOm699VamTJnCN77xDW688UZaWlqYMmUKv/nNb+js7OSjH/0oJ5xwAieccAL3338/\nANu2bePMM8/k2GOPpaGhAfc++30Sp9KpNO4GZgBfD7d39Th+hZndAkwDXoiGP6tOczN0dsKCBcEF\noLExOC4iIlKE+fNh507YtSvY37Ur2J8/H264Yeh/98477+Sss87iXe96F6NHj+bhhx9mw4YNPPXU\nUzz22GM8++yzHHXUUXzmM5/pvs3YsWN54IEHmD17Npdccgn3338/r776Ku95z3v43Oc+1329vffe\nm6997Wu0tbXxne98B4BXXnmFkSNHctVVVwHwqU99itmzZ3PyySfT3t7OBz/4QdavX89Xv/pVTj75\nZK677jr+67/+i5tuumno/2QFlS04M7MVwKnA28xsE3A9QVD2IzO7DGgHPh5e/SfA3wH/A7wMXFqu\ndiWeGbS05AIzCPa1EkdERIrU2poLzCK7dsGDDxb3d1esWMGVV14JwAUXXMCKFSvYtWsXF154IXvt\ntRfveMc7OP300/e4zYc//GEAjjnmGHbu3MmoUaMYNWoUI0aMYMeOHYO6/1/+8pesW7eue//FF1/k\npZdeYvXq1dx+++0AfOhDH+LAAw8s5t+smLIFZ+5+YT+/mt7HdR24vFxtSZVoKLOn2bMVoImISNGm\nTYO1a/cM0GpqgvlnQ7Vt2zbuvfdeHn/8ccyMN954AzPjIx/5SN6UEvvssw8Aw4YN6/452t+9e/eg\n2tDV1cUDDzzAvvvu+6bfpTHNSFIWBEhk3ryg16yxEbq6gu2CBcHxFCjXRFORaqHXkJRTUxOMHBkE\nZBBsR44Mjg/VypUrufjii9m4cSMbNmygo6ODCRMmMHr0aG655RbeeOMNtmzZwq9+9ash38eoUaN4\n6aWX+t0/88wzu4c8IVhAAHDKKaewfPlyAH7605+yffv2IbehkhScJU19PcyZk+spa2kJ9uvr427Z\ngMo10VSkWug1JOU2diw88gg0NARfABoagv2xYwe+bX9WrFjBRz7ykT2OffSjH+Uvf/kLEydO5Jhj\njuHzn/8873//+4d8H6eddhrr1q1jypQp3HrrrZx77rnccccd3QsCFi5cSFtbG5MmTeKoo47qXlRw\n/fXXs3r1ao477jh+8YtfMG7cuKH/oxVkaVm50Je6ujpva2uLuxkSmjUr+DDp3V3e0FDcRFORaqHX\nkAzF+vXrOfLII+NuhvTS1+NiZmvcvW6g26rnTEqmXBNNRfqTtSFAvYb2lLXHV6RQlU6lIRlWjomm\nIh0dwTL/1tbgOdbUFAzBREOAUVqAtWth+fLih2jipNdQThYfX5FCqedMSqYcE02luuWbg5UvX1Na\nlfM1lLZeqCw+viKFUs+ZlEw00XT+/GAYZurUXC+HyFDk+4DO4hBguV5DaeyFyuLjK1Io9ZxVSpXU\nzBw7Npi43NoabJP6xi/pkO8Detq0XA9TJAtDgOV4DaWxFyqrj69IIRScVYpqZooMWr4PaA2jFy6N\nvVB6fKWaKTirlObmXELZYcNyiWZVM1OkX/k+oMuRrymr0tgLpcc3XcyML33pS9373/rWt/jKV76S\n9zZ33nnnHiWX+jJ58mQuvLC/gkO54uiDcd111/HLX/4SgG9/+9u8/PLL3b+bN4SE7zfffDNXXHHF\noG+Xj4KzSokSyvakkkwieQ30Aa1h9MKktRdKj28ZlGmKzT777MPtt9/Oc889V/BtBgrO1q9fT1dX\nF6tXr+avf/1rUe3r6Wtf+xpnnHEGUJrgrBwUnFVKfzUzU5wEWKQS9AFdPPVCSbcyTbEZPnw4M2fO\npKV3JwSwceNGpk+fzqRJk5g+fTrt7e389re/5e677+bLX/4yU6ZM4ZlnnnnT7X74wx9SX1/PmWee\nyd133919fM2aNUyePJmTTjqJf/u3f+s+fvPNN3P++edz7rnnMmHCBL7zne/wr//6rxx77LGceOKJ\nPP/88wBccsklrFy5koULF7J582ZOO+00TjvtNK6++mpeeeUVpkyZwkUXXQTAD37wA6ZOncqUKVNo\naGjgjTfeAGDJkiW8613v4v3vfz/3339/UeeuT+6e2svxxx/vqTFnjju4Nza6d3UFWwiOi4iIDNG6\ndesKv3LPz5/oEn0uFeEtb3mLv/DCC37YYYf5jh07/Jvf/KZff/317u5+zjnn+M033+zu7osXL/bz\nzjvP3d1nzJjht912W79/c+LEib5hwwb/+c9/7ueee2738WOOOcbvu+8+d3e/6qqr/D3veY+7uy9Z\nssQPP/xwf/HFF33r1q2+//77+3e/+113d7/yyiu9paXlTfd72GGHeWdn5x7/R2TdunV+zjnn+Ouv\nv+7u7p///Od96dKlvnnzZh87dqxv3brVX3vtNX/ve9/rl19++Zva39fjArR5AfGNUmlUSlQbs7k5\nN8RZW5uKmpkiIpIR0efPggW5YyWaYrP//vtz8cUXs3DhQvbdd9/u4w888AC33347APX19TQVMJ7+\n0EMPUVtby2GHHcaYMWP4zGc+w/bt2xk2bBg7duzortNZX1/PT3/60+7bnXbaaYwaNYpRo0bx1re+\nlXPPPReAY445hkcffXRQ/8+qVatYs2YNJ5xwAgCvvPIKBx98MK2trZx66qnU1tYC8MlPfpI//OEP\ng/rbA9GwZqWMGwfXXJN7AZgF+ykpwioiIhlQ5ik2V155JYsXL847R8wKCARXrFjBk08+yfjx4zn8\n8MN58cUX+fGPf4y75739Pvvs0/3zsGHDuveHDRvG7t27B/GfBCOLM2bMYO3ataxdu5annnqqe5FD\nIf9DMRSciYiIVIt583LZArq6clkESjQRfvTo0XziE59g8eLF3cfe+973cssttwCwfPlyTj75ZABG\njRrFSy+99Ka/0dXVxW233cajjz7Khg0b2LBhA3fddRcrVqzggAMO4K1vfSv//d//3f33itG7DTU1\nNewK885Mnz6dlStXsnXrVgCef/55Nm7cyLRp07jvvvvYtm0bu3bt4rbbbiuqDX1RcCYiIlIt6uth\nzpzcUGZLS7Bfwik2X/rSl/ZYtblw4UKWLFnCpEmTWLZsGQvCIdULLriAb37zmxx77LF7LAhYvXo1\nhx56KIceemj3sVNOOYV169axZcsWlixZwuWXX85JJ520x/DpUMycOZOzzz6b0047rXt/0qRJXHTR\nRRx11FHMmTOHM888k0mTJvGBD3yALVu2cMghh/CVr3yFk046iTPOOIPjjjuuqDb0xTzFqwXr6uq8\nra0t7maIiFRcfwXhpfqsX7+eI488Mu5mSC99PS5mtsbd6wa6rRYEiIikTBprZYpI4TSsKSKSMmms\nlSkihVNwJiKSMmmslVkJHR0wa1aQaHfWrGC/WqR5ilIWFft4aFhTRCRlpk0LhjJ7BmhJr5VZbtU8\n1DtixAi2bdvGQQcdVPYUDzIwd2fbtm2MGDFiyH9DwZmISMo0NQWBRxSIpKVWZjnlG+q94YZ421Zu\nY8aMYdOmTXR2dsbdFAmNGDGCMWPGDPn2Cs5ERFImqpU5f34wlDl1qlZrVvNQb01NDRMmTIi7GVJC\nCs5ERFIoKggvgb6Ges1AGSYkjbQgQEREUq+pCfbbb89j7nDnndW1MECyQcGZiIgMWVJWSI4dC+ef\nD8N6faq9/LJSjEj6xDKsaWaNwGcBA/7D3b9tZqOBW4HxwAbgE+6+PY72iYjIwJK2QnLduqBcZE/V\nMu9MsqXiPWdmdjRBYDYVmAycY2YTgauBVe4+EVgV7ouISEIlLRnutGnBytWeqj3FiKRTHMOaRwK/\nc/eX3X038GvgI8B5wNLwOkuB82Nom4iI9KP3EObq1claIdnUFKQUiQI0pRiRtIpjWPNxYK6ZHQS8\nAvwd0Aa83d23ALj7FjM7uK8bm9lMYCbAuHHjKtNikZRRUWwptb6GMIcNg+HDYffu3PXi7KlSihHJ\nCouj5IOZXQZcDuwE1hEEaZe6+wE9rrPd3Q/M93fq6uq8ra2trG0VSZveH6JR70E1ZEqX8pk1CxYt\nenNVgmHDgnleeq6JDMzM1rh73UDXi2W1prsvdvfj3P0U4HngaeBZMzsEINxujaNtIklZfTZUSZsH\nJNnQX5LXI46Ahobg9dLQoMAsC9L+HpgFca3WPNjdt5rZOODvgZOACcAM4Ovh9q442ibVLWmrz4ai\nmjOlS/n0V8/zb/9WyXCzJAvvgVkQV56zH5vZOuD/ApeHKTO+DnzAzJ4GPhDui1RUFnqdtGJNykGT\n7atDFt4DsyCWnjN3/9s+jm0DpsfQHJFuWeh1UlFsKQdNtq8OWXgPzAJVCBDpIQu9TtGHqOYBSalF\n9TxbW4Ntf88pzVlKtnyPTxbeA7MgltWapaLVmtmQpLQPWukoUhy9hpJtoMdHj195JXq1pkgkeiNY\ntAgeeijYTp4cb30+9TqJDJ3mLCXbQI+P3gOTIZY5ZyKRfG8Uca0Ai4ZuRGTwNGcp2Qp5fNL4Hpik\nEZhSUM+ZxEpv5BLRPKVs0JylZMvi45O0EZhSUHAmscriG4UMXhbfXKuVUm4kWxYfnywOpSs4k1hl\n8Y1CBi+Lb67VonePJ2jOUpJlcU5ZFkdgNOdMYqXcSQLZfHMdSBbmyOTLJp+2OUvVJI1zyvLpr3pF\nmkdgFJxJ7LL2RiGDl8U313yyUiIniQt6pPpkMfG2hjVFJHbVNrydtmHc/hZrVGOPpyRPFodq1XMm\nIrGrtuHtNAU1+Xr5qq3HU5IrayMwCs5EJBGy9uaaT5qCmny9fFkcThJJAg1riohUWJqGcfP18mVx\nOEkkCdRzJiJSYWkaxh2ol6+aejxFKkWFz0VEpF8qhC1SOip8LiIiRdPQpUjlaVhTRETy0tClSGWp\n50xEREQkQRSciYiIiCSIgjMRERGRBFFwJiIiIpIgCs5EREREEkTBmYiIiEiCKDgTkarV0QGzZgX5\nu2bNCvZFROKmPGciUpV6Z75fuzYo4q0EqyISN/WciUhVmj8/F5hBsN25MzguIhKnWIIzM5ttZk+Y\n2eNmtsLMRpjZBDNrNbOnzexWM9s7jraJSHVobd2zmDcE+w8+GE97REQiFQ/OzOxQ4AtAnbsfDewF\nXAB8A2hx94nAduCySrdNRKrHtGlBEe+eamqC+WciInGKa1hzOLCvmQ0H9gO2AKcDK8PfLwXOj6lt\nIlIFmppg5MhcgFZTE+w3NcXbLhGRigdn7v5n4FtAO0FQ9gKwBtjh7rvDq20CDq1020SkeowdG0z+\nb2gIessaGrQYQESSoeKrNc3sQOA8YAKwA7gNOLuPq3o/t58JzAQYN25cmVopItVg7Fi44Ya4WyEi\nsqc4hjXPAP7k7p3uvgu4HXgvcEA4zAkwBtjc143d/SZ3r3P3utra2sq0WMqjvR3mzgUP43D3YL+9\nPd52iYiIxCiO4KwdONHM9jMzA6YD64BfAR8LrzMDuCuGtkklLVsG114Ls2cHgdns2cH+smVxt0wk\n9ZRgVyS9zL3P0cPy3qnZV4FPAruB3wP/QDDH7BZgdHjs0+7+Wr6/U1dX521tbWVurZRNFJAtWJA7\n1tgILS1gFl+7RFKud4LdaLGD5tSJxMvM1rh73UDXi2W1prtf7+5HuPvR7l7v7q+5+x/dfaq7/427\nf3ygwKyqZHX4zywIxHpSYCYVkuWeJSXYFUk3VQhIg6wO/0X/S0/R/yhSRlHP0qJF8NBDwXby5OwE\naEqwK5JuCs7SoLk5GO5bsACGDQu2jY3B8TSbNy/3v3R15f7HefPibplkXNZ7lpRgVyTdYplzVipV\nNefMPQjMIl1d6R/+a28Pev+am4P/xT0IzOrrQWlSpIymTg16zPo63tpa+faUmuacSRJ0dARfeFpb\ngy8MTU16/iV6zpkMUlaH/8aNg2uuyQWZZsG+AjMps6z3LCnBrsQt61MHyk3BWRpo+E+kpKqhdFOU\nYLe1NdgqMMsvywtE4pD1qQPlVvEKATIE9fXBNhr+a2mB2trccREZlKhnaf78YJL81KkacqlmvYeB\n166F5cvV21gMLUopjnrO0iBJw39ZTeshZZPUHgn1LElEvTyll/WpA+Wm4EwGJ6tpPSokqYFKuWje\niaSBenlKrxqmDpSTgjMZnKym9aiAagxU1CMhpVLOLzbq5Sk9LUopjlJpJFWS00xkMa1HBcyaFQRk\nPb+h19QEb1o33BBfu8op6ykrpDLKnRpEqUekUpRKI+2SOnyY1bQeFVCNQyfqkZBSKHcPrHp5JGm0\nWjOpmpuhszMYNowKgydh+LBnWo+Wllzh8traYJGC9GvatGAVWO+esywHKk1Nwaq33j0Smncig1GJ\nLzbRAhGRJFDPWVIltSh4fT3MmZNrS0tLsK+0HgOqxgmy6pGQUhioB7baFtpI9mnOWVJFw4dRrxnk\neqviDtBkyKJyJsqtJVK4fHPCQPPFJD005yztVBUgk5RbS2Tw8vXAakWwZJHmnCWVqgKIiHTrb05Y\nNS60kexTz1lSJakqgEgFaf6QDIZWBEsWDRicmdm7zGyVmT0e7k8ys2vL3zQZFJVVkgzIl6hXQZv0\npRoX2kj2FdJz9h/APwG7ANz9UeCCcjZKhiCpedFEBqG/+UP//M/VV11BCqMVwZJFhcw528/dH7Q9\nVwjuLlN7ZKiSmhdNZBD6mz/005/2P+lbualEOcqkGNEq+tbWYJg8CavoC+k5e87MDgccwMw+Bmwp\na6tk8JKaF01kEPqbPwSa9C0ipZfUmseFBGeXA4uAI8zsz8CVwOfK2ioZPJVVkgzob/7Q2Wdr0reI\nlF5SU7HkDc7MbBhQ5+5nALXAEe5+srtvrEjrpHDKiyYZ0N/8oX/5F036FpHSS2oqlrxzzty9y8yu\nAH7k7n+tUJtkKOLMi9beHiw8iO7bPQgK6+uV+kMGrb/5Q488ouoKIlJaSa15PGD5JjP7Z+AV4Fag\nO0Bz9+fL27SBZbp8U5rMnRusDO1dDH3OHBVDFxGRxMpXGqwcX/4KLd9USHD2pz4Ou7u/c6iNKxUF\nZwmhOqAiIpJSlax5XLLgLMkUnCWIOwzrMYWxq0uBmYj0KYmpC0QqoWSFz82sxsy+YGYrw8sVZlYz\n0O3y/L13m9naHpcXzexKMxttZveY2dPh9sCh3odUmFaKSsxUPSA9kpq6QCRJCkml8V3geODfw8vx\n4bEhcfen3H2Ku08J/9bLwB3A1cAqd58IrAr3JQ20UlRipA/78ip14JvU1AVppy8o2VJIhYAT3H1y\nj/17zeyREt3/dOAZd99oZucBp4bHlwL3Af9YovuRcopzpWjGafhnYPk+7JU1vji9J0uvXQvLlxc3\nWTqpqQvSrByPk8SrkJ6zN8IKAQCY2TuBN0p0/xcAK8Kf3+7uWwDC7cF93cDMZppZm5m1dXZ2lqgZ\nUpRx44JVmdEcM7NgX2k0iqIeocLow758ytHL1V8ViLhTF6SZeiOzp5Dg7MvAr8zsPjP7NXAv8KVi\n79jM9gY+DNw2mNu5+03uXufudbW1tcU2QySx9IZbGH3Yl085At/+qkB8+tMalhuqav+CksUh3QGH\nNd19lZlNBN4NGPCku79Wgvs+G3jY3Z8N9581s0PcfYuZHQJsLcF9iKRWtb/hFqqpKRjC6Z2nSNUD\nileOBJ1RFYieqQs+/emgRJeG5YYmqYlUK2EoQ7ppmC5SyGrNy4F93f1Rd38E2M/M/ncJ7vtCckOa\nAHcDM8KfZwB3leA+RFJLPUKF6a/kU9LebNOov16uYgPfqApEa2uw/cEP1EtcjHI9Tmkw2BGGtEwX\nKWRY87PuviPacfftwGeLuVMz2w/4AHB7j8NfBz5gZk+Hv/t6MfchknbV/IY7WL0/7BWYlUalAl/1\nEhenmr+gDPa5k5bpIoWs1hxmZuZhtloz2wvYu5g7dfeXgYN6HdtGsHpTROh7+CeJ3e+Sbf3VOi2l\nah6WK5VKPE5JNNjnTlq+CBTSc/Zz4EdmNt3MTicYivxZeZslIqAeIakO6iWWoRrscyct00UKqa05\nDJgJnEGwIOAXwPfcvVTpNIZM5ZtERLKhkvUNJVsG89ypdKHz3kpeWzNMffEe4M/unoiVlArORERE\nZDDi/CJQaHDW75wzM7sRuMHdnzCztwIPECSfHW1mV7n7iv5uKyJSzdKwVF+kWqVhfl6+OWd/6+5P\nhD9fCvzB3Y8hqIepmQCSHO3tMHdurtC6e7Df3h5vu6QqpWWpvogkV77g7PUeP38AuBPA3f9S1haJ\nDNayZXDttTB7dhCYzZ4d7C9bFnfLpAqlZam+iCRXvlQaO8zsHODPwPuAywDMbDiwbwXaJlKY5mbo\n7IQFC4ILQGNjcFykwtKyVF+yT8Pr6ZWv56wBuAJYAlzZo8dsOvBf5W6YSMHMoKVlz2MtLblC7CIV\nlJal+pJtSRtez2L9y3LqNzhz9z+4+1nuPsXdb+5x/OfuXnThc5GSiYYye4qGOEUqTDm7JAmSNLye\ntEAxDQpJQivVKi0T7efNC4YzGxuhqyvYLlgQHJe89G229Kq5lI4kR5KG15MUKKZFIeWbpFpFE+07\nO4Nhwtmzc3O6rrkm3rb1VF8fbJubc0OctbW549Kn3skY166F5csVSJRCGpbqS7YlqSRWkgLFtFDP\nmfSvuTnXCzVsWK53KmkT7ceNC4LFaI6ZWbA/bly87Uo4fZsVya4kDa9rHubg5Q3OzOyIsKbmyF7H\nzypvsyQRNNE+0/RtViS7kjS8nqRAMS36Dc7M7AvAXcAs4HEzO6/HrzWZpxpoon2m6dusSLZFw+ut\nrcE2rukKSQoU0yLfnLPPAse7+04zGw+sNLPx7r6AoAC6ZF3PifY955zV1iZrzpkMSVNTMMesdwFg\nfZsVkVLTPMzByRec7eXuOwHcfYOZnUoQoB2GgrPqoIn2mRZ9m42rALCIiPTNvJ8hKjO7F/iiu6/t\ncWw48H3gInffqzJN7F9dXZ23tbXF3QyR8mhvD1bMRsGxe9CbWV+vxQ4iIilkZmvcvW6g6+VbEHAx\nsEcdTXff7e4XA6cU2T4RGYhqhoqIVKV+hzXdfVOe391fnuaISDfVDBURqUr9DmumgYY1JfPcgxxz\nka4upTIREUmpUgxrikiclMpERKQqFRycmdn+ZjY6upSzUSKCaoaKiFSpAWtrmlkD8DXgFSD6yu7A\nO8vYLhFRKhMRkao04JwzM3saOMndn6tMkwqnOWcikgQdHUG+uNbWoPKC8sWJJFecr9dC55wN2HMG\nPAO8XHyTRGRIlO8s0To6YPLkXKWFtWuDygsqTyOSPGl5vRYy5+yfgN+a2SIzWxhdyt0wCbW3w9y5\nuUng7sF+e3u87ZLKUb6zRJs/P/dGD8F2587guIgkS1per4X0nC0C7gUeA7pKcadmdgDwPeBogvlr\nnwGeAm4FxgMbgE+4+/ZS3F+qRR/MnZ171rcE1besFsp3lmitrbk3+siuXUFJLBFJlrS8XgvpOdvt\n7l909yXuvjS6FHm/C4CfufsRwGRgPXA1sMrdJwKrwn1pbs6t0hs2LLd6Tx/MyVXq3s5oMUBPLS3K\nd5YQ06YFReN7qqkJapWKSLKk5fVaSHD2KzObaWaHlCKVhpntT1D+aTGAu7/u7juA84Ao6FsKnD/U\n+8gUfTCnT6mHIROW76yjA2bNCt7MZs0K9qtZUxOMHJl7w6+pCfabmuJtl4i8WWper+6e9wL8qY/L\nHwe6XZ6/NwV4ELgZ+D3B8OZbgB29rrd9oL91/PHHe+Z1dbk3NroHH8XBpbExOC7JVOrHbM6cPf9G\n9LfnzCltuwvQ3u5+4IHuNTVBE2pqgv329oo3JVHa292vuMJ96tRgW+3nQyTJ4ny9Am1eQKxU8fJN\nZlYH/A54n7u3mtkC4EVglrusOoRaAAAXRElEQVQf0ON62939wD5uPxOYCTBu3LjjN27cWKGWx2Tu\n3KDXpbFxzzlnc+ZozlmSlbLsUoJWa86aBYsW7Tlno6YGGhrghhsq2hQRkdQpZSoNzOxo4ChgRHTM\n3f9ziG3bBGxy99ZwfyXB/LJnzewQd99iZocAW/u6sbvfBNwEQZ6zIbYhPZSINH36G4Yc6nD0uHF7\nBuJmsQXmaZlMKyKSZgPOOTOz64EbwstpwHzgw0O9Q3f/C9BhZu8OD00H1gF3AzPCYzOAu4Z6H5kS\nfTBHH+rRB7PyWyVXhssupWUyrYhImhXSc/YxghWVv3f3S83s7QTzxIoxC1huZnsDfwQuJQgUf2Rm\nlwHtwMeLvA+ReGS4t7OpKUjYGOUJSuxkWhGRFCukfNOD7j7VzNYQ9Jy9BDzu7u+pRAPzUfkmkcqL\nSp88+GDQY6ZSRSIihSnlnLO2MGnsfwBrgJ0Eqy1FpAqNHavJ/yIi5TRgcObu/zv88UYz+xmwv7s/\nWt5miYiIiFSnQhYEXBb97O4bgCfCRQIiIiKSh5I2y1AUMqw53cw+ClwGHAQsAX5d1laJiIikXEcH\nTJ6cW0Czdm2woOaRRzRPU/IbsOfM3T9FUE7pMeAnwJXuflW5GyYiIpJm8+fnAjMItjt3BsdF8ilk\nWHMi0Aj8GNgA1JvZfmVul8jQlLrouIhIL4UOVSppswxVIcOa/xe43N1XmZkBXwQeAmJPpSHyJlHR\n8c7OPctdgcpdiUjRBjNUOW1a8Pve5c6UtFkGUkies/3d/cVexya6+9NlbVkBlOdM3iQqnRQFZJCr\nSzrU2pYiIqHB1JftHchFSZs156x6FZrnrN9hTTNrAnD3F82sd7b+S4tsn0h5RBn5e1JgJiIlMpih\nyrFjg0CsoSHoLWtoUGAmhck35+yCHj//U6/fnVWGtogUr7+i4wP0EIuIFGKw9WWjpM2trcFWgZkU\nIl9wZv383Ne+SDJkuOi4iMSvqSkYmowCNNWXlXLItyDA+/m5r32RZMhw0XERiV80VKn6slJO/S4I\nMLM3gL8S9JLtC7wc/QoY4e41fd6wgrQgQERERNKi6MLn7r5XaZskIiIiIgMZMAmtiIiIiFSOgjMR\nERGRBFFwJiIiIpIgCs5EREREEkTBmYhIAhRaTFtEsk/BmUg1aG+HuXNzlRLcg/329njbJUCuBuOi\nRfDQQ8F28mQFaCLVSsGZSDVYtgyuvTZXymr27GB/2bK4W1a8DASe8+fnimNDsN25MzguItVHwZlI\nsdIQHDQ350pZDRuWK3HV3Bx3y4qXgcBzMMW0RST7FJyJFCsNwUFUyqqnlpbgeNplIPAcbDFtEcm2\nfss3pYHKN0kiRAHZggW5Y42NyQp+0tDGYrgHgVmkqytV/1c05ywa2oyKaT/yiGo2imRJoeWb1HMm\nUqw09ErNm5frUerqyvU0zZsXd8uKFwWePUW9mCkRFdNuaAh6yxoaFJiJVLN+a2uKSIH6Cw6SFKDV\n1wfb5uZcMFlbmzueZj0Dz5aWXA9hbS1cc03crSvY2LFwww1xt0JEkkDBmUix0hAcjBu3Z1vMktO2\noWhvD+b0NTcHAWbUS9bRka3AU0SqUizBmZltAF4C3gB2u3udmY0GbgXGAxuAT7j79jjaJzIoWe6V\nSqpoEUZnZ3C+n3suCIijoDPNgaeIVL1YFgSEwVmduz/X49h84Hl3/7qZXQ0c6O7/mO/vaEGApEbP\nnh6zoKdn3rwggBs3Lu7WpU/WFziISCalcUHAecDS8OelwPkxtiUnDTmsJPnSkG4jTdKwCENEZIji\nCs4c+IWZrTGzmeGxt7v7FoBwe3BfNzSzmWbWZmZtnZ2d5W+pPlSlFDKQiytRMrBCU0SkP3ENa77D\n3Teb2cHAPcAs4G53P6DHdba7+4H5/k5FhjU1fCKl0lcuLtDw5lDMnRt8Seq9CGPOHM03E5HEKnRY\nM5YFAe6+OdxuNbM7gKnAs2Z2iLtvMbNDgK1xtO1NouGTnsGZAjMZrL56eq68MtguXBhsFVQUTosw\nRCTDKj6saWZvMbNR0c/AmcDjwN3AjPBqM4C7Kt22Pmn4REohSrfxhS8EFwiCsoULNbw5FFFqkOhL\nUrRKU72PUiYdHTBrVpAkeNasYF+kXOLoOXs7cIcFb6rDgR+6+8/M7CHgR2Z2GdAOfDyGtr1ZGnJY\nSfL17OmBXG8ZqCdWJOF6l9dauxaWL1cVBymfigdn7v5HYHIfx7cB0yvdngFp+ERKIerpSUM1ARHZ\nw/z5ucAMgu3OncFxVXWQckhSKo1k0vCJlFKWa1yKDCCtQ4OtrbnALLJrFzz4YDztkexT+SaRSlJP\nrFSpNA8NTpsWtLdngFZTEwSZIuWgnrO0UnLcdMrXE6vHVDIs39Bg0jU1wciRQUAGwXbkyOC4SDko\nOEsrJcfNHj2m2aXAO9VDg2PHBj18DQ1Bb1lDQzp6/CS9NKyZVs3NQdHnBQtyOdiUkiHd9JhmV+9C\n7T0TW6dw1XdHR9Dj1doaDPk1NQ0cqKR9aHDsWE3+l8qJpUJAqVR94fO+Ms5rxV+66THNpgxVGuk9\ndywa4huoJ2motxPJkjQWPpfBUHLcbOg53OWeqxoQ0WOaDRkq1D7UuWMaGhQpnIY100rJcbOh53DX\n296WS077L/8Czz2nxzQrMpTfrpi5YxoaFBjasHi1UXCWVkrJkA0955lFvvCFXDCmxzQbMvRlKu1z\nx6pN0gKhNKdUqSTNOROJm+aZZV97e9BLGn2Zcg8Ctvr61CW01tyx9EjiYzVrFixa9ObgvqGhOnpV\nNedMJA00d7A6ZKjSSJLnjqW1AkG5JDG3XJpTqlSShjVF4pSh4S6pHkmcO6bhsjdLYiCkYfHCqOcs\nqZS0sjrU18OcObmJ4S0twb7mmYkMShJ7ieI2bVquqkEk7kBI1RYKo+CsEHEESsoWXx0yNNwlEqck\n9hLFLYmBUJKHxZNEw5qFiCO7t7LFi4gULM7hsqStiIxEgdD8+UGQOnVqMtqWxGHxpNFqzUKUKrv3\nYFdsaRWfiEhB4lqZmMQVkYVIakCZdVqtWUqlyu49mKFKreITESlYXMNlaZzrFgWUixbBQw8F28mT\ntbo1SRScFaJUgVJzc9DjtmBB0CMWrdLra6iy5yq+rq7c7ebNG/r/ISKVoQU9sYiGy1pbg21BgVmR\nj1Ua57qlMaCsNgrOClGqQGkwPXBaxSfVKCtBjRb0pEeRj1USV0QOJI0BZdVx99Rejj/+eK+IjRvd\n58xx7+oK9ru6gv2NGwf3d7q63BsboxLXwaWxMfd3RardnDl7vi6i18ucOXG3bHD0Wk+PIh+r9nb3\nAw90r6kJblpTE+y3t5e53UW44opce6NLTU1wXMoLaPMC4hstCKikuXODb2S9E47OmaOEoyJQusU3\nSaAFPelR5GMVTa5P0orIfNK6iCELtCAgiTRUKZJfqRbfxC2LC3qyMuTcWwkeqyHNdYuRco0ln4Kz\nSlLCUZH8shLUZHFBT1bn0WXxsSpA2gLKaqMktCKSHGmrNdpf7sLTTw96xaPjLS3B/5DmXvKsJsaO\nHpMsPVaSeppzJiLJMdhEzXGrtnmkmkcnUhTNOROR9Enb0P9gchemXVaGnPuS1fl0kloKzkREhior\nCxgKkeW5WVmdTyepFducMzPbC2gD/uzu55jZBOAWYDTwMFDv7q/H1T4RkQH115uUxQAty3Ozsjqf\nTlIrzp6zRmB9j/1vAC3uPhHYDlwWS6tERAqV5d6k3tI25DwY1dQDKqkQS3BmZmOADwHfC/cNOB1Y\nGV5lKXB+HG0TESmYchdmQ5bn00kqxdVz9m2gCegK9w8Cdrj77nB/E3BoXzc0s5lm1mZmbZ2dneVv\nqUi10eTowmW5N6maVFMPqKRCxYMzMzsH2Orua3oe7uOqfX5lcfeb3L3O3etqa2vL0kaRqqbJ0VJt\n1AM6NPoiVzZxLAh4H/BhM/s7YASwP0FP2gFmNjzsPRsDbI6hbSKiydFSbaIe0EjUAyr5RV/kOjv3\nzPMHOn9FijUJrZmdClwVrta8Dfixu99iZjcCj7r7v+e7vZLQipSJko2KyECinvUoIINcQuahvF+k\nLQn1EKQxCe0/Al80s/8hmIO2OOb2iFQnTY4WkUKUepWrplR0izU4c/f73P2c8Oc/uvtUd/8bd/+4\nu78WZ9tEqpYmR4tIIUr9Ra6aKm4MIEk9ZyKSBJocLSKFKPUXOeWb6xZbhQARSShNjhaRQpS6akQ1\nVdwYgHrOREREZPBKnedPUyq6qedMRERE4pfl+q2DFGsqjWIplYaIiIikRRpTaYiIiIhUPQVnIiIi\nIgmi4Eykmqk2nohI4ig4E6lmysgtIpI4Wq0pUs1U5FxEJHG0WlOk2qnIuYhIRWi1pogMTEXORUQS\nR8GZSDVTRm4RkcTRnDORaqaM3CIiiaM5ZyIiIiIVoDlnIiIiIimk4ExEREQkQRSciYiIiCSIgjMR\nERGRBFFwJiIiIpIgCs5EREREEkTBmYiIiEiCKDgTERERSRAFZyIiIiIJouBMREQK194Oc+dCVF3G\nPdhvb4+3XSIZouBMREQKt2wZXHstzJ4dBGazZwf7y5bF3TKRzKh44XMzGwGsBvYJ73+lu19vZhOA\nW4DRwMNAvbu/Xun2iYhIHs3N0NkJCxYEF4DGxuC4iJREHD1nrwGnu/tkYApwlpmdCHwDaHH3icB2\n4LIY2iYiIvmYQUvLnsdaWoLjIlISFQ/OPLAz3K0JLw6cDqwMjy8Fzq9020REZADRUGZP0RCniJRE\nLHPOzGwvM1sLbAXuAZ4Bdrj77vAqm4BD+7ntTDNrM7O2zs7OyjRYREQC8+YFw5mNjdDVFWwXLAiO\ni0hJVHzOGYC7vwFMMbMDgDuAI/u6Wj+3vQm4CaCurk5f1UREKqm+Ptg2N+eGOGtrc8dFpGixBGcR\nd99hZvcBJwIHmNnwsPdsDLA5zraJiEgfxo2Da67J7ZvtuS8iRav4sKaZ1YY9ZpjZvsAZwHrgV8DH\nwqvNAO6qdNtERERE4hZHz9khwFIz24sgOPyRu/8/M1sH3GJmc4DfA4tjaJuIiIhIrCoenLn7o8Cx\nfRz/IzC10u0RERERSRJVCBARERFJEAVnIiIiIgmi4ExEREQkQRSciYiIiCSIgjMRERGRBFFwJiIi\nIpIgCs5EREREEsTc01ue0sw6gY0Vuru3Ac9V6L7SSucoP52f/HR+BqZzlJ/Oz8B0jvIr9/k5zN1r\nB7pSqoOzSjKzNnevi7sdSaZzlJ/OT346PwPTOcpP52dgOkf5JeX8aFhTREREJEEUnImIiIgkiIKz\nwt0UdwNSQOcoP52f/HR+BqZzlJ/Oz8B0jvJLxPnRnDMRERGRBFHPmYiIiEiCKDgTERERSRAFZ30w\nsxFm9qCZPWJmT5jZV8PjE8ys1cyeNrNbzWzvuNsaJzPby8x+b2b/L9zX+enBzDaY2WNmttbM2sJj\no83snvAc3WNmB8bdzriY2QFmttLMnjSz9WZ2ks5PwMzeHT5vosuLZnalzs+ezGx2+B79uJmtCN+7\n9T4UMrPG8Nw8YWZXhseq+jlkZt83s61m9niPY32eEwssNLP/MbNHzey4SrVTwVnfXgNOd/fJwBTg\nLDM7EfgG0OLuE4HtwGUxtjEJGoH1PfZ1ft7sNHef0iNvztXAqvAcrQr3q9UC4GfufgQwmeC5pPMD\nuPtT4fNmCnA88DJwBzo/3czsUOALQJ27Hw3sBVyA3ocAMLOjgc8CUwleX+eY2UT0HLoZOKvXsf7O\nydnAxPAyE/huhdqo4KwvHtgZ7taEFwdOB1aGx5cC58fQvEQwszHAh4DvhfuGzk8hziM4N1DF58jM\n9gdOARYDuPvr7r4DnZ++TAeecfeN6Pz0NhzY18yGA/sBW9D7UORI4Hfu/rK77wZ+DXyEKn8Ouftq\n4Pleh/s7J+cB/xnGBL8DDjCzQyrRTgVn/QiH7NYCW4F7gGeAHeGTHGATcGhc7UuAbwNNQFe4fxA6\nP7058AszW2NmM8Njb3f3LQDh9uDYWhevdwKdwJJwaPx7ZvYWdH76cgGwIvxZ5yfk7n8GvgW0EwRl\nLwBr0PtQ5HHgFDM7yMz2A/4OGIueQ33p75wcCnT0uF7Fnk8Kzvrh7m+EQwpjCLqFj+zrapVtVTKY\n2TnAVndf0/NwH1etyvPTw/vc/TiCrvHLzeyUuBuUIMOB44DvuvuxwF+pvuGVAYXzpT4M3BZ3W5Im\nnBd0HjABeAfwFoLXWm9V+T7k7usJhnjvAX4GPALsznsj6S22zzUFZwMIh1ruA04k6NIcHv5qDLA5\nrnbF7H3Ah81sA3ALwTDCt9H52YO7bw63WwnmC00Fno26xcPt1vhaGKtNwCZ3bw33VxIEazo/ezob\neNjdnw33dX5yzgD+5O6d7r4LuB14L3of6ubui939OHc/hWAo72n0HOpLf+dkE0FvY6RizycFZ30w\ns1ozOyD8eV+CN4H1wK+Aj4VXmwHcFU8L4+Xu/+TuY9x9PMGQy73ufhE6P93M7C1mNir6GTiTYJjh\nboJzA1V8jtz9L0CHmb07PDQdWIfOT28XkhvSBJ2fntqBE81sv3DOa/Qc0vtQyMwODrfjgL8neC7p\nOfRm/Z2Tu4GLw1WbJwIvRMOf5aYKAX0ws0kEkwL3Ighgf+TuXzOzdxL0FI0Gfg982t1fi6+l8TOz\nU4Gr3P0cnZ+c8FzcEe4OB37o7nPN7CDgR8A4gg+Xj7t778mpVcHMphAsKNkb+CNwKeHrDZ0fwnlC\nHcA73f2F8JiePz1YkObokwTDdb8H/oFgTpDehwAz+w3BfOBdwBfdfVW1P4fMbAVwKvA24FngeuBO\n+jgnYdD/HYLVnS8Dl7p7W0XaqeBMREREJDk0rCkiIiKSIArORERERBJEwZmIiIhIgig4ExEREUkQ\nBWciIiIiCaLgTEQSxczeMLO1PS4VqxxgZt83s61m9nie67zbzO4L27bezG6qVPtEpDoolYaIJIqZ\n7XT3kTHd9ynAToJix0f3c52fA//u7neF+8e4+2NF3u9e7v5GMX9DRLJDPWciknhm9lYzeyqqKGBm\nK8zss+HP3zWzNjN7IkxKGt1mg5nNM7MHwt8fZ2Y/N7NnzOxzfd2Pu68mKHOTzyEEZV2i2zwW3t9e\nZvYtM3vMzB41s1nh8elhcffHwp65fXq07zoz+2/g42Z2uJn9zMzWmNlvzOyIoZ8xEUmz4QNfRUSk\novY1s7U99v+Pu99qZlcAN5vZAuBAd/+P8PfXhNm89wJWmdkkd380/F2Hu59kZi3AzQR1YUcATwA3\nDrF9LcC9ZvZb4BfAkrAG70yCItzHuvtuMxttZiPC+53u7n8ws/8EPk9QixbgVXc/GcDMVgGfc/en\nzWwa8O8EdWtFpMooOBORpHnF3af0Puju95jZx4F/Ayb3+NUnzGwmwfvZIcBRQBSc3R1uHwNGuvtL\nwEtm9qqZHRAGVYPi7kvCoc2zgPOABjObTFCD90Z33x1e7/nw+J/c/Q/hzZcCl5MLzm4FMLORBEW7\nbwsqxgCwz2DbJiLZoOBMRFLBzIYBRwKvENRN3GRmE4CrgBPcfbuZ3UzQMxaJaip29fg52h/y+5+7\nbwa+D3w/XDxwNGBA70m81vu2vfw13A4DdvQVlIpI9dGcMxFJi9nAeuBCgqCoBtifIMB5wczeDpxd\n7kaY2VnhfWNm/4ugsPSfCYY4P2dmw8PfjQaeBMab2d+EN68Hft37b7r7i8Cfwp5BLDC59/VEpDoo\nOBORpNm3VyqNr5vZu4B/AL7k7r8BVgPXuvsjwO8J5pB9H7i/mDs2sxXAA8C7zWyTmV3Wx9XOBB43\ns0eAnwNfdve/AN8D2oFHw999yt1fBS4lGK58jKDHrr+5bhcBl4W3fYJgyFREqpBSaYiIiIgkiHrO\nRERERBJEwZmIiIhIgig4ExEREUkQBWciIiIiCaLgTERERCRBFJyJiIiIJIiCMxEREZEE+f9yij0m\ntfMWfAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7b30750>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "positive = pdData[pdData['Admitted']==1]# 录取学生\n",
    "negative = pdData[pdData['Admitted']==0]# 未录取学生\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(10, 5))\n",
    "ax.scatter(positive['Exam 1'], positive['Exam 2'], s=30, c='b', marker='o', label='Admitted')\n",
    "ax.scatter(negative['Exam 1'], negative['Exam 2'], s=30, c='r', marker='x', label='Not Admitted')\n",
    "ax.legend()# 显示标签\n",
    "ax.set_xlabel('Exam 1 Score')\n",
    "ax.set_ylabel('Exam 2 Score')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 由值到概率的映射sigmoid函数\n",
    "def sigmoid(z):\n",
    "    return 1 / (1 + np.exp(-z))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 预测函数\n",
    "def model(X, theta):\n",
    "    return sigmoid(np.dot(X, theta.T))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "pdData.insert(0, 'Ones', 1)# 新加一列，值为1，名为‘Ones’\n",
    "orig_data = pdData.as_matrix()# 从dataframe转换为矩阵\n",
    "cols = orig_data.shape[1]# 取出列数\n",
    "X = orig_data[:, 0:cols-1]# 变量x\n",
    "y = orig_data[:, cols-1:cols]# 结果y\n",
    "theta = np.zeros([1, 3])# 构造三个theta参数，用0占位"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  1.        ,  34.62365962,  78.02469282],\n",
       "       [  1.        ,  30.28671077,  43.89499752],\n",
       "       [  1.        ,  35.84740877,  72.90219803],\n",
       "       [  1.        ,  60.18259939,  86.3085521 ],\n",
       "       [  1.        ,  79.03273605,  75.34437644]])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.],\n",
       "       [ 0.],\n",
       "       [ 0.],\n",
       "       [ 1.],\n",
       "       [ 1.]])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.,  0.,  0.]])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "theta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((100, 3), (100, 1), (1, 3))"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape, y.shape, theta.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 损失函数（似然函数）\n",
    "def cost(X, y, theta):\n",
    "    left = np.multiply(-y, np.log(model(X, theta)))\n",
    "    right = np.multiply(1-y, np.log(1 - model(X, theta)))\n",
    "    return np.sum(left-right)/(len(X))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.69314718055994529"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cost(X, y, theta)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 计算梯度\n",
    "def gradient(X, y, theta):\n",
    "    grad = np.zeros(theta.shape)\n",
    "    error = (model(X, theta)-y).ravel()\n",
    "    for j in range(len(theta.ravel())):\n",
    "        term = np.multiply(error, X[:,j])\n",
    "        grad[0, j] = np.sum(term)/len(X)\n",
    "        \n",
    "    return grad"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 比较三种不同梯度下降方法\n",
    "STOP_ITER = 0# 根据迭代次数判断停止策略\n",
    "STOP_COST = 1# 根据损失变化判断停止策略\n",
    "STOP_GRAD = 2# 根据梯度判断停止策略\n",
    "\n",
    "def stopCriterion(type, value, threshold):\n",
    "    # 设置三种不同的停止策略\n",
    "    if type ==STOP_ITER:\n",
    "        return value > threshold\n",
    "    elif type == STOP_COST:\n",
    "        return abs(value[-1]-value[-2]) < threshold\n",
    "    elif type == STOP_GRAD:\n",
    "        return np.linalg.norm(value) < threshold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy.random\n",
    "# 洗牌，把数据打乱\n",
    "def shuffleData(data):\n",
    "    np.random.shuffle(data)\n",
    "    cols = data.shape[1]\n",
    "    X = data[:, 0:cols-1]\n",
    "    y = data[:, cols-1:]\n",
    "    return X, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "import time\n",
    "def descent(data, theta, batchSize, stopType, thresh, alpha):\n",
    "    # 梯度下降求解\n",
    "    \n",
    "    init_time = time.time()\n",
    "    i = 0# 迭代此时\n",
    "    k = 0# batch\n",
    "    X, y = shuffleData(data)\n",
    "    grad = np.zeros(theta.shape)# 计算的梯度\n",
    "    costs = [cost(X, y, theta)]# 损失值\n",
    "    \n",
    "    while True:\n",
    "        grad = gradient(X[k:k+batchSize], y[k:k+batchSize], theta)\n",
    "        k += batchSize #batch数量个数据\n",
    "        if k >= n:\n",
    "            k = 0\n",
    "            X, y = shuffleData(data)# 重新洗牌\n",
    "        theta = theta - alpha * grad# 参数更新\n",
    "        costs.append(cost(X, y, theta))# 计算新的损失\n",
    "        i += 1\n",
    "        \n",
    "        if stopType ==STOP_ITER:\n",
    "            value = i\n",
    "        elif stopType == STOP_COST:\n",
    "            value = costs\n",
    "        elif stopType == STOP_GRAD:\n",
    "            value = grad\n",
    "        if stopCriterion(stopType, value, thresh):\n",
    "            break\n",
    "            \n",
    "    return theta, i-1, costs, grad, time.time() - init_time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def runExpe(data, theta, batchSize, stopType, thresh, alpha):\n",
    "    theta, iter, costs, grad, dur = descent(data, theta, batchSize, stopType, thresh, alpha)\n",
    "    name = \"Original\" if (data[:,1]>2).sum() > 1 else \"Scaled\"\n",
    "    name += \" data - learning rate: {} - \".format(alpha)\n",
    "    if batchSize==n: strDescType = \"Gradient\"\n",
    "    elif batchSize==1:  strDescType = \"Stochastic\"\n",
    "    else: strDescType = \"Mini-batch ({})\".format(batchSize)\n",
    "    name += strDescType + \" descent - Stop: \"\n",
    "    if stopType == STOP_ITER: strStop = \"{} iterations\".format(thresh)\n",
    "    elif stopType == STOP_COST: strStop = \"costs change < {}\".format(thresh)\n",
    "    else: strStop = \"gradient norm < {}\".format(thresh)\n",
    "    name += strStop\n",
    "    print (\"***{}\\nTheta: {} - Iter: {} - Last cost: {:03.2f} - Duration: {:03.2f}s\".format(\n",
    "        name, theta, iter, costs[-1], dur))\n",
    "    fig, ax = plt.subplots(figsize=(12,4))\n",
    "    ax.plot(np.arange(len(costs)), costs, 'r')\n",
    "    ax.set_xlabel('Iterations')\n",
    "    ax.set_ylabel('Cost')\n",
    "    ax.set_title(name.upper() + ' - Error vs. Iteration')\n",
    "    return theta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "***Original data - learning rate: 1e-06 - Gradient descent - Stop: 5000 iterations\n",
      "Theta: [[-0.00027127  0.00705232  0.00376711]] - Iter: 5000 - Last cost: 0.63 - Duration: 0.92s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[-0.00027127,  0.00705232,  0.00376711]])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAEWCAYAAABYLDBhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3XmYHGW5/vHvTVaWQICELSCJkMEk\nEBCGBIhRFpeAAoKICcjiAoejoBx/ouBxAdxwVzSKyOEgCiI7qEDgKKCiQSbsSQiGsIUACSEBwpbt\n+f3xVkOl0zPTk5memum+P9dVV3fX+nS9VdVPvfVWtSICMzMzMzPrWusVHYCZmZmZWT1yom1mZmZm\nVgNOtM3MzMzMasCJtpmZmZlZDTjRNjMzMzOrASfaZmZmZmY14ETbzMzMzOqGpLdIWiapT9GxNFyi\nLel4SQ9IekXSM5J+IWlwbviZklZkBbRU0j8k7Z0bvq+k+WXzfI+kWyW9JGmxpHslfVHSwNw8f5sb\nP7IY1sv1+4aki8rmu2EWxw0Vvsdjkt5d5fddlc1nmaRHJf2vpKYK41ZcXm7aZZJWS3o19/nosmWF\npCPbi6udmIdn8+lbYVi+fErd0rJxJGmepFkVpr9N0mvZdM9JulrS1mXzD0kfzvXrm/Ubnn2+SNI3\nymL9U9lyfivpzNznQZJ+mJXby5KekHSlpHHtrIPSd3xM0umtjHubpCWSBuT63ZibdoWk5bnP52Xb\n8eqy9bgsv623RdLJklokvV5hu+3wvCUdJenxbN1cK2mzsuGTJc3Ohj8iaWI1cbayrP6SvippTja/\np7L19d7cOI/ltvNnsjLfqMK8StvLuLL+7e535dt5tox8OS2TdF/ZuBW3M0lH56Z5tXz9t7IeIvv+\ny5SOW3+W9JGycfL7S6n7Q274l7LvtkzSfEm/L5v+fZL+qnRsXCTpdkmHtLKOSt02uTJ4VtKGufl9\nMovpLWXT5L/LsnXZPiQNlnRhVt4vSXpY6The1bIk7SPpL9m0L0j6g6TRufnn94uXsu3vY1XGVn48\nWCbpK7nhA7LYX8zi/1zZ9AdIekjpd+9WSdtXO23ZfI6X9PfsfZu/C2rnWF22Hp9SOj6ulRQp7Rcr\nS9tF1u+83DyXly3nRlX4DamyfELS1LLl/13S8dn7/pJ+kG3rpf36R+0WYOvrs839qzfL1uWO2fs1\n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\nNRmZl027qaRSNfX+wKx2lldfDjsMVq6EP/2p6EjMzMzMbB20l2jfJemE8p6SPgHMaGvCrCb6ZGAa\nMBu4PCJmSjpbUvYMO6YBiyXNAm4FTouIxRGxitRs5M+SHiA1Q/lVR75YrzduHGyzDVx1VdGRmJmZ\nmdk6UER5s+ncQGlL4BpgOW8m1s1Af+Cw7B8je4Tm5uZoaWkpOoyudeqpcN558OyzsMkmRUdjZmZm\nZoCkGRHR3N54bdZoR8SzEbEPcBbwWNadFRF796Qku25Nngyvv+6bIs3MzMx6ob7VjBQRt5Kadlh3\nGj8eRoyAyy6D448vOhozMzMz64Bq/7DGiiClWu3/+z+op+eEm5mZmTUAJ9o93ZQpsGoVXHFF0ZGY\nmZmZWQc40e7pdt45/YHN735XdCRmZmZm1gFOtHs6KdVq//3v8MQTRUdjZmZmZlVyot0bHH10er34\n4mLjMDMzM7OqOdHuDUaMgP32g4sugjaee25mZmZmPYcT7d7iYx+DRx6Bv/2t6EjMzMzMrApOtHuL\nD30IBg2CCy8sOhIzMzMzq4IT7d5igw3SM7WvuAJeeqnoaMzMzMysHU60e5OPfxxeeQUuv7zoSMzM\nzMysHU60e5Px42HUKLjggqIjMTMzM7N2ONHuTSQ48USYPh3uuafoaMzMzMysDU60e5vjj0/ttadO\nLToSMzMzM2uDE+3eZvDg9Ac2l14KS5YUHY2ZmZmZtcKJdm/0qU/Bq6+mP7AxMzMzsx7JiXZvtNtu\nsM8+8POfw+rVRUdjZmZmZhU40e6tPv1pmDsXpk0rOhIzMzMzq8CJdm91xBEwbBh8//tFR2JmZmZm\nFTjR7q3694dTT4W//AVaWoqOxszMzMzKONHuzU48ETbeGL73vaIjMTMzM7MyTrR7s403hpNOgiuv\nhHnzio7GzMzMzHJqmmhLmiRpjqS5kk5vZZwjJc2SNFPSpbn+qyTdm3XX1zLOXu2zn4U+feCHPyw6\nEjMzMzPLqVmiLakPMBU4EBgNTJE0umyckcAZwISIGAOcmhv8akTslnWH1CrOXm+bbeCjH4ULL4Rn\nnik6GjMzMzPL1LJGexwwNyLmRcRy4DLg0LJxTgCmRsQSgIhYWMN46tcZZ8Dy5fDd7xYdiZmZmZll\naploDwOezH2en/XLawKaJN0habqkSblhAyW1ZP0/WGkBkk7MxmlZtGhR10bfm4wcmWq1f/ELePrp\n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\nBUGCfC0GdQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f9e70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 选择的梯度下降方法是基于所有样本的\n",
    "n = 100\n",
    "runExpe(orig_data, theta, n, STOP_ITER, thresh=5000, alpha=0.000001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "***Original data - learning rate: 0.001 - Gradient descent - Stop: costs change < 1e-06\n",
      "Theta: [[-5.13364014  0.04771429  0.04072397]] - Iter: 109901 - Last cost: 0.38 - Duration: 20.04s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[-5.13364014,  0.04771429,  0.04072397]])"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n4CIzy/4BWifJZ3EK8YPuYKoXmvYDFrj7v5P3cJ27/8Pd30mmXwk85+7fdff3kueZ7e5nJvtdddwK\n7GtmR9TsFdXKgcAkd58Hn26zG6u57IVEjeG5yXIb3P1O4Grg11k/cEjWP4sIvtmVIhWY2QDiczbW\n3Z9M9pOP3P0Od782me064DZ3vz7ZFivd/cfEseGKeniNBwIPuPuSZHsvdPfb6lDe6jqM+IHxbeCM\nrIoziJrf54ltkMsVwLPJ53AxgLsvc/ffuftdNSxLTma2s5l9w8xeJI7DObn7re7+GHEGo67GATe5\n+wx3X0XUvo9PytMMuBy40N1nJttrXiaf1Dczm2JmV5vZs8RZzr55xnU1s4lmttLM5prZV1PruMLM\n7jOzv5vZWsq+HzLTh5vZ0nQlmZmdbGavJf8PM7NSM1trZu+b2W9q8TqeSf591czWm9kXk/EnmNkr\nZrbazJ4zs31Tyyw0sx8k5fjQzFqY2SVmNs/M1pnZTDM7OZl3LyJfHZysf3Uy/m9m9rPUOr+avD8r\nk/era2qam9nXzewtM1tlZjfkOr6kNchATpzOa0M0UfiUu68nTu+PzF4g2fnPIU5Drsqxzj2IoPWP\nWpTnfuL02fhcE82sJxFW7kiGc2rxHFU9/2H1+HznAKXu/g/iIFnnHxC1kQpKmdeR6yCemXdX4BSi\n5iLNgcuAy82sZTWf+gZgoJkdk2PaMcQX4YfVXFeusg4nvryzy3oOZa+13n4IJQeVh/NMHghscfc5\nqXGvErWDueydTM81797Aa+5xPi/xWiXrqouDgdbEj7VqSX58jKXi+34qEcLuBSZRvf3lfuLMzR7V\nff4spURTk4tquXylkjBdSuq4UImXgD3N7LdmdqSZtc+afgxx5rAuPgKuIYJtob0AnGNmF5tZidXs\n7NhI4B/uvjVr/D1Ec6KB2QuY2SDifX45efxHM/tjnvUfTTSTfDHXxOSYdwi5z+TeQ9l3W11e4wvA\nd83sm2Y2uIoQUGl5a2gc0fQmc+bkhBzzXAZcaHGmItsx1O77uVJm1szMRprZBKLJ3rHEZ/XEypes\nN7mOqV2S77TuybCPmS0yswVmdmUdKgKq40tEZVwH4v3INe5OojlRV+I7+hozOzq1jtHEMWNn4vvs\nU+7+AnG29KjU6DOJlgkQZ2Su9zgD0o/43NeIux+e/Js5u3i3me1PnKH9GrAr8GdgosVZ74yxRCXG\n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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x9e9ad0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 根据损失值停止\n",
    "# 设定阈值1E-6，差不多需要110000次迭代\n",
    "runExpe(orig_data, theta, n, STOP_COST, thresh=0.000001, alpha=0.001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "***Original data - learning rate: 0.001 - Gradient descent - Stop: gradient norm < 0.05\n",
      "Theta: [[-2.37033409  0.02721692  0.01899456]] - Iter: 40045 - Last cost: 0.49 - Duration: 7.71s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[-2.37033409,  0.02721692,  0.01899456]])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x9eb9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 根据梯度变化停止\n",
    "# 设置阈值0.05，差不多需要40000次迭代\n",
    "runExpe(orig_data, theta, n, STOP_GRAD, thresh=0.05, alpha=0.001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "***Original data - learning rate: 0.001 - Stochastic descent - Stop: 5000 iterations\n",
      "Theta: [[-0.39025756  0.07255207 -0.08406542]] - Iter: 5000 - Last cost: 1.33 - Duration: 0.26s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[-0.39025756,  0.07255207, -0.08406542]])"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\njd4+9923tu2ddZb6f5NN/r+9e4+RqjzjOP79iXiJEm+gIWoADdVqE5WoUWkNWqPGkmqNRawppG1C\nsdoqpqEr/tH0oqGX1NJENGpNbb0gYimGWIUoaoJBREEExbqIrQgreEMBF7k8/eN9R2bXszALuzs7\nM79PcjLvec+Zo/BapQAACitJREFUc5nnzDvPnHnPnLTuSkyYkNq1SkDEySd3fltL5s4t/swqd8cd\naT0TJ6bxUaPS+LRpbecbNy7Vb9iw8zml1+H++1P5qqt2bndHr/HAgW2nl7+mRZ/Z7ZddRcCiqCA3\n7bakd0+GqiTKRXbsiFi0aOf4+PER/fu3nWfYsIhbb931MubNa/tma21NSXJ5IlUrmpoirr8+lbdv\nTx8Ou7NoUcSYMRHnnBOxeHHE4MFdn3jtjZUrixvD99+PWLHiywl8S0uKYWds2ZI+3Cr1/PMpud60\nKWLq1IgpUzq3vnLnnZe+nEWkD8DyBqySD7Knnoq47bY9X//urFpVeTK2t6ZMSftdSpw7A3Ye+13t\nkkvS8u++O+KRRzqe791307G0K4MGtX1/ff55xObNO7+sz5pV/Lw5c/YuuSlpaUnLGTq07bG2Jwlk\nV5g6Na3/lls697yVK1PbXdLUlJbTvt1esKDyZKojQ4akZbe0tK3fsSOdQGlpSeWbb9557M6fn9rT\nHTu+vP6tW9O0Ihs3Vv6Fvb3Sl5+OjB2b2q0TTkjzbdy4Z+spOe64lNhX4vbbU1u1pyZPjnj22VRe\ntiyiT5/UNnWHtWv3/rXZndbWdAKitJ5rr00xmT274+c0N7dNdufPT+VS+z9gwK7jDxFHHrmzvKt5\nZ89O02+8sfJ96iaVJspK8/YOp59+eizak7vHWW3YujX9LNTZq7et66xfn4bjj3ccKhXRff3pPvss\ndT3oir/Q2rQp/bzZvjvY1q0wc2b6ubloPyJSX8MxYzrXr7XI9Ompy8Y++6QuIiNH7v7fXLrLtm1p\nv8aP37v/LI6ALVu65yY6zc3pNZs0qeuX3ZXeeSd1j+jo1t0lq1enn9d78x0oG83mzem/r8eN23U7\n9sEH6XqTUrfGZctSlxUpXSfT2tr2Yv9yM2akvw4dNCgdJ62tHV88G5G2Z9So7nlPdYKklyJitxd3\nOVE2MzMzs4ZSaaLsi/nMzMzMzAo4UTYzMzMzK+BE2czMzMysgBNlMzMzM7MCTpTNzMzMzAo4UTYz\n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\nef62qcA0AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x9f5df0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每次只迭代一个样本\n",
    "runExpe(orig_data, theta, 1, STOP_ITER, thresh=5000, alpha=0.001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "***Original data - learning rate: 2e-06 - Stochastic descent - Stop: 15000 iterations\n",
      "Theta: [[-0.00202226  0.00996093  0.0008834 ]] - Iter: 15000 - Last cost: 0.63 - Duration: 0.77s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[-0.00202226,  0.00996093,  0.0008834 ]])"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nXVAmzygzm2pmU8zspqJx65vZ62b2qzzLmYviQHvpUli5sjZlEREREZFul9tz6MysDhgNHAw0AhPN\nbKy7T83kGQZcCOzj7nPNbJOi2XwXeDivMuaqONDeZx9Yf32YP7825RERERGRbpVni/YewHR3f8nd\nlwG3AEcV5TkNGO3ucwHcfVZhhJntBmwK3J9jGfPTt2/rtAULur8cIiIiIlITeQbaWwCvZYYbU1rW\ncGC4mT1qZhPMbCSAmfUCfgKc29YCzOx0M2sws4bZs2dXsehVUO5PayZPhvfe696yiIiIiEi3yzPQ\nthJpXjRcDwwD9gdOAK41s/7AV4Fx7v4abXD3a9x9hLuPGDhwYBWKXEWbbRbdRa66qmX6zjvD5z9f\nmzKJiIiISLfJ87/CG4EtM8ODgZkl8kxw9+XAy2Y2jQi89wL2M7OvAusCfcxskbuX/EFlj1RfD488\nAm+8AV/5Sstxf/oTrLsuXHttbcomIiIiIrnLs0V7IjDMzLY2sz7A8cDYojx3AQcAmNkAoivJS+5+\nort/wN2HAN8Eblylguystdcunf6733VvOURERESkW+UWaLv7CuBMYDzwHHCru08xs0vN7MiUbTww\nx8ymAg8C57r7nLzKVBPFTx8RERERkTWCuRd3m141jRgxwhsaGmpdjNbcoVeZ65k//hFOPLF7yyMi\nIiIiXWJmk9x9RHv59M+QeTODBx4oPe5zn4vxIiIiIrLaUaDdHQ46CHbcsfz4JUu6rywiIiIi0i0U\naHeXyZPLj9NztUVERERWOwq0e4KFC2tdAhERERGpMgXa3emcc+L9sstapuuv2UVERERWOwq0u9Pl\nl8OkSXDkkS3TFWiLiIiIrHYUaHen3r1h111h++1hzhz4/vcjXV1HRERERFY7CrRrZaONmlu21aIt\nIiIistpRoF1L668f72rRFhEREVntKNCupfXWi/f582tbDhERERGpOgXatbT++vH37I2N8NRT8S+R\n+qdIERERkdWCAu1aqquDpia48krYZZdal0ZEREREqkiBtoiIiIhIDhRo90RvvBFdSd59t9YlERER\nEZFOUqBda336tE4bNCi6kvTrB/fdB8uWweLF3V82EREREek0Bdq1tvnmzZ833bT1+MMOg49/HNZd\nt/vKJCIiIiJdpkC71n7723h/4QW46qrSeR55JN7du6dMIiIiItJlCrRr7eCDI4D+0Ifib9nb0qtX\n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\ng3FhuN56EbC/9pr7b37T/F2deKL7kUdGWuFu6z33xHH00EOb53f44XGMfuihlus1YED58r/6atvb\n+9ln4wLxK1+JeW+5ZfO4E05ovR9ddVV0IfziF2N46NC4KAb3Qw6J+rJ0aVyovPJK3FUsrGu516RJ\nceE7b15M9+670ThRvN/9/Ofuzz0XgffChXE++/a33f/4xziHzZ0byyy+233bba2XuWRJfA+/+lWU\n95VX3L/85ThPnXGG+2GHNec98MCW9dI9yrntts1p8+fH91JohFi40P2mm1ous0YqDbQt8lafmR0L\njHT3L6bhk4CPuPuZmTx3Af8B9iFawC9x9/vSuC2Be4APAee6++gSyzgdOB3gAx/4wG6vvPJKLusi\nssZwjx+p1tXFZ4gfbxbGFYbd48eub78dP7IdPDh+sNq7N8yeDZtsEj+WXbkynkizzjqR9847Yeed\n4fDD40k2O+8c437965h+331hzz1hyhS45BL44hfh/vvhoIPiB79HHw0f/CBceSU89FBM8+KLUa4D\nDojHZP7nP80/Dgb49KfhySdhxozmx2MOGABDh8K//91y/Y8/HpYuhWHDmp+Gc/PNcNxx8QSfe+6p\n3rYeNKj5R7JZJ5wQy+yKa66Bp5+GX/2qOe0Tn4Bx4zo2n17p9/KF7SYi0tOMGxd/7tfNzGySu49o\nN1+OgfZngEOLAu093P2sTJ6/AsuJftqDgX8CH3b3eZk8g4C7gCPc/a1yyxsxYoQ3NDTksi4iImu0\npUvj6URZhQuupUvjqUIbbdScZhbB+bx5sP76kb++Pob79oU334y02bPjyUb9+sXTiPr0iceNLlwI\nr70GAwfG8CabxNN71l475jF3blwMmcUFVH19PLFpm22gsTEurN58E/bbL9633jrKMXduXPytWAHr\nrRfv664b89xmm7g4mTEDdtklht3h73+PpwUNHhxPQlpvPViwINIGDYp5zJoVT23acssYN3UqDB8O\njz8OO+wQw3vuCR/7WFxgvv12bIfFiyP/fffF+pxxRvxb8G9+E+u9dGlcUA4fDrvtFo92HTAgngR1\n5JHxRKahQyPvuuvGk5lOOSUu4IYPjyfmHH10vM+fHxepZ58N220XT3x6/fUYN2tW5Fu0KMo6ZEhs\nh+HDYz032yzKt3QpbLBBrMPLL8dTlS64IMqz5ZZw771R/q9/PS5iCxfer77afFG7337xfc2aFRfj\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x9fe490>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 把学习率调小一些\n",
    "runExpe(orig_data, theta, 1, STOP_ITER, thresh=15000, alpha=0.000002)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "***Original data - learning rate: 0.001 - Mini-batch (16) descent - Stop: 15000 iterations\n",
      "Theta: [[ -1.03428751e+00   1.68818575e-02  -4.70052692e-04]] - Iter: 15000 - Last cost: 0.61 - Duration: 1.11s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[ -1.03428751e+00,   1.68818575e-02,  -4.70052692e-04]])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nPTTrFJAX45jcyTIA7wvgRKc3lE4AZqjqTxmmpzhmXCIiIiKKSWJvwhSRpwHsCaCNiIwDcA2AFgCg\nqvcDeAXAQQBGApgL4OSk0hIZA3AiIiKqVlOmAJdfnnUqyCWxAFxVjynzuwI4O6nlx4oBOBEREVUr\nPj+XO3wTZhAMwImIiIgoJgzAg2AATkREREQxYQAeBANwIiIiIooJA3AiIiIiohQxAA+CNeBERERE\nFBMG4EEwACciIiKimDAAD4IBOBERERHFhAF4EAzAiYiIiCgmDMCDYABORERERDFhAB4EA3AiIiIi\nigkD8CAYgBMRERFRTBiAExERERGliAF4EKwBJyIiIqKYMAAPggE4EREREcWEAXgQDMCJiIiIKCYM\nwINgAE5EREREMWEAHgQDcCIiIiKKCQPwIJZfPusUEBEREVGNYAAexNprZ50CIiIiIqoRDMCJiIiI\nKN8mTsw6BbFiAE5ERERE+TZrVtYpiBUDcCIiIiLKt+WWyzoFsWIAHtTTT9vnOusAv/0tcPzxwAkn\nNB/vlFOAHXYAVlkFuOWWxuHvvgv89a+N39u1s3GIiIiIqLRlaitkFa2yLvY6duyoDQ0NWSej9ixZ\n0jRzqwJz5wItW9pV57RpwAorAGPGAKuvDixYYA+ntmhh482caeN++SXwzTfAZpsBbdrYdEuXAiLA\ne+8BkycDp59u006aBLRvD4waBey9N9C1q/29/z6waBGw6652wfPoo5a2ffYBLrwQOOMMYPhwYPx4\noH9/4OCDgXvvBS6+2OZ5xhnAZZcB//ufzb9zZ+C++2z6jz4CunQBNtwQuO46W9e777b5LljQuP49\negB/+5sN23Zb4PPP/bfbAQcAq64KTJgAjB0LfP99YruIiIiobo0bB6y7buqLFZFBqtox9vkyACeq\nQbNnAyuvbBcy8+cDK65oF1I//WQXUmusAUydCrRubRc3qsC8eXaxNH26db05dKhdmLVuDey8s13w\nvPUWsOeewIcf2oVHixbAq68C++0HdO8O/P73wLXXAi++aBdinTsDc+YA221nF2iLFgEXXQT06QOc\neaZNv2iR3RH6+9/twuquu4CePe0ibelS4McfgREjgOOOA558snEdL7rILrDOPde+b721XQBtvjlw\n6KHA66/bBd8yy9gF4tixxbfXd9/ZheX33wOnnQYMGpTk3iEiorAyilcZgDsYgBNRTVm6tPndp6VL\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa3f8b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Mini-batch descent\n",
    "runExpe(orig_data, theta, 16, STOP_ITER, thresh=15000, alpha=0.001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "***Scaled data - learning rate: 0.001 - Gradient descent - Stop: 5000 iterations\n",
      "Theta: [[ 0.3080807   0.86494967  0.77367651]] - Iter: 5000 - Last cost: 0.38 - Duration: 0.96s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[ 0.3080807 ,  0.86494967,  0.77367651]])"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAEWCAYAAABYLDBhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzs3Xm8XeP1x/HPSiJiSCokiAxCJGSQ\nBBEi1BSEmqcaSrRa9VNDKS2tlmrVVB1MVWKImmoWagoRSqVyY4qEREQQKSKDCAmSrN8f6znuvuee\nOyX35Nzh+3699uve8+zhrLOns86zn/1sc3dERERERKR+tSh1ACIiIiIiTZESbRERERGRIlCiLSIi\nIiJSBEq0RURERESKQIm2iIiIiEgRKNEWERERESkCJdoiIiIi0iiZ2SIz27TUcVSl2SfaZrajmf3H\nzD41s3lm9ryZbZsZ38nMbjCz/5nZZ2b2ppn91szWykxjZjbDzKYUWP44M/thgfLuZuZpB8kO303j\nbzazr9J7fmZmr5vZRWb2rWo+y/lm9nVmnmlmdpWZdSow7SZmttzMrsmUdcuLxc3s88zrnfLey81s\ncG3XdRUx72Jms6oYl1sH2ZhezZtmrVT+SIH5Z5rZ4jT+w7S8tfOWX+EzmNlmZuaZ199svxSrm9nV\nee/znJkdl3ndycyuN7PZ6b1npPfaopp1sDxN+5mZTTWz7xeYruB+ZmaTM+tnmZktybz+pZkdl8rz\n97WNCsVT4H27m9nTZvZF2v+HVTPt6mZ2o5ktTOv8jLzxu6dlfJGWuXFm3OEWx+IXZjauNrHVELeZ\n2clm9lpa5odpex6RmWZcZn19Ymb3VXG8HJe2/eF55dltt8jMZpnZXZY5h6Tp3Mw2S//njtPstliQ\nN+0kM2uRKft92od2yszzuVU+h3QrEHvuOPjMzBakdXxi3vKrPdbM7Pi03T4zs4/M7F9m1jYzfrCZ\nPZKWP8/MXsztwwXWUW4YkrcNumaWN8zMZqb/s/Mst/JjepGZHV3DblCJmbU2s8vTtlpkZu+Y2Z9r\n+15m1sfMRlt8Z3yW9uMdMsvPP7fPNLOz6xBf/nl3ZGacmdklZjY3DZeamWXGDzSziRb7+0QzG1jb\nefNi+Oa8bCt5frEazsOZ96z0nZKWn1vekrz3mZxZX5tl5qnt9vlX3vvfambn5733O1Z+XP+zlpuw\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xadc4f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 数据标准化\n",
    "from sklearn import preprocessing as pp\n",
    "\n",
    "scaled_data = orig_data.copy()\n",
    "scaled_data[:, 1:3] = pp.scale(orig_data[:, 1:3])\n",
    "runExpe(scaled_data, theta, n, STOP_ITER, thresh=5000, alpha=0.001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 设定阈值\n",
    "def predict(X, theta):\n",
    "    return [1 if x >= 0.5 else 0 for x in model(X, theta)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy = 60%\n"
     ]
    }
   ],
   "source": [
    "scaled_X = scaled_data[:, :3]\n",
    "y = scaled_data[:, 3]\n",
    "predictions = predict(scaled_X, theta)\n",
    "correct = [1 if ((a==1 and b ==1) or (a==0 and b==0)) else 0 for (a, b) in zip(predictions, y)]\n",
    "accuracy = (sum(map(int, correct))%len(correct))\n",
    "print('accuracy = {0}%'.format(accuracy))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
